Method and apparatus for synchronizing wake-ups of offline mobile devices

ABSTRACT

An scheduler module is provided for acting on a request to establish a communication session between a first device and a second device, wherein the first device, the second device, or both are associated with a respective activity schedule that specifies, at least in part, a wake-up time when the respective device will be in an active state. The scheduler module also determines whether the first device, the second device, or both are in an inactive state, to determine a next wake-up time to effect establishment of the communication session.

BACKGROUND

In developing countries, a large number of mobile device users do not have access to stable electricity supplies. Consequently, in some cases, mobile device users physically transport their devices and/or batteries over large distances, to an available electricity supply, to be charged. In typical usage, 90% or more of a mobile device's battery capacity is consumed while it is in idle mode, due to the need to maintain the connection to the cellular radio network. In many developing countries, however, idle mode battery consumption is even higher given the poor or sporadic coverage within these geographies. Recognizing this, many users keep their mobile devices completely switched off, as opposed to in idle mode, in order to conserve battery power. Unfortunately, when the mobile device is off, the user cannot receive connection attempts from other users or services, further contributing to the overall reduced quality of service within these areas.

Some Example Embodiments

Therefore, there is a for an approach for efficiently synchronizing the wake-up times of offline devices.

According to one embodiment, a method comprises acting on a request to establish a communication session between a first device and a second device, wherein the first device, the second device, or both are associated with a respective activity schedule that specifies, at least in part, a wake-up time when the respective device will be in an active state. The method also comprises determining whether the first device, the second device, or both are in an inactive state. The method further comprises determining a next wake-up time to effect establishment of the communication session. Still further, the method comprises causing, at least in part, transmission of the next wake-up time to the first device and the second device.

According to another embodiment, an apparatus comprises at least one processor. The apparatus further comprises at least one memory including computer program code, the at least one memory and the computer program code are configured to, with the at least one processor, cause the apparatus to act on a request to establish a communication session between a first device and a second device, wherein the first device, the second device, or both are associated with a respective activity schedule that specifies, at least in part, a wake-up time when the respective device will be in an active state. The one memory including computer program code also comprises determining whether the first device, the second device, or both are in an inactive state. The one memory including computer program code further comprises determining a next wake-up time to effect establishment of the communication session, and causing at least in part, transmission of the next wake-up time to the first device and the second device.

According to another embodiment, a computer-readable storage medium carrying one or more sequences of one or more instructions which, when executed by one or more processors, cause, at least in part, an apparatus to at least perform the following: act on a request to establish a communication session between a first device and a second device, wherein the first device, the second device, or both are associated with a respective activity schedule that specifies, at least in part, a wake-up time when the respective device will be in an active state; determine whether the first device, the second device, or both are in an inactive state; determine a next wake-up time to effect establishment of the communication session; and cause at least in part, transmission of the next wake-up time to the first device and the second device.

Still other aspects, features, and advantages of the invention are readily apparent from the following detailed description, simply by illustrating a number of particular embodiments and implementations, including the best mode contemplated for carrying out the invention. The invention is also capable of other and different embodiments, and its several details can be modified in various obvious respects, all without departing from the spirit and scope of the invention. Accordingly, the drawings and description are to be regarded as illustrative in nature, and not as restrictive.

BRIEF DESCRIPTION OF THE DRAWINGS

The embodiments of the invention are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings:

FIG. 1 is a diagram of a system for synchronizing the wake-ups of switched off user equipment, according to one embodiment;

FIG. 2 is a flowchart depicting the high-level process for synchronizing the wake-ups of switched off user equipment, according to one embodiment;

FIG. 3 is a flowchart of a process for a first device to establish a communication session with a second device, according to one embodiment;

FIG. 4 is a flowchart of a process for a server to schedule a communication session with between a first and second device, according to one embodiment;

FIGS. 5 a and 5 b is a flowchart of a process for enabling an inactive mode of a first and second device in accord with a recommended wake-up time, according to one embodiment;

FIG. 6 is a diagram of hardware that can be used to implement an embodiment of the invention;

FIG. 7 is a diagram of a chip set that can be used to implement an embodiment of the invention; and

FIG. 8 is a diagram of a mobile terminal (e.g., handset) that can be used to implement an embodiment of the invention.

DESCRIPTION OF SOME EMBODIMENTS

Examples of a method, apparatus, and computer program for synchronizing the wake-ups of switched off mobile devices are disclosed. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the embodiments of the invention. It is apparent, however, to one skilled in the art that the embodiments of the invention may be practiced without these specific details or with an equivalent arrangement. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the embodiments of the invention.

FIG. 1 is a diagram of a system for synchronizing the wake-up of switched off user equipment—i.e., mobile devices—according to one embodiment. In particular, the system 100 presents an example framework wherein a plurality of user equipment 101 is able to synchronize, manage and effectively communicate their operational states amongst one another so that communications, calls and data services can be executed optimally (e.g., when communicating devices are in an online or active state during active communication sessions and offline in a low power or no power use state at other times). As such, battery usage of respective user equipment can be reserved for, or restricted to, active operations. In general, user equipment such as mobile devices may operate in various states, as depicted below

Operational State Description Inactive Device is completely inoperable by the user. Power consumption/battery utilization is at its lowest. Device cannot communicate with the network to send or receive communications. Idle Device is powered on, in a low power consumption/ battery utilization mode. Device can still periodically communicate with the network, such as to receive incoming calls, texts or other data. Active Device is operable by the user. Power consumption/ battery utilization is higher to support the specific capabilities of the mobile device. Device can communicate with the network to send or receive communications.

Indeed, various other operational states may apply depending on the device type in question, software design capabilities, etc. The above mentioned states are for example purposes only and not meant to limit the scope or range of applications of the examples presented herein. As used throughout the specification, a “wake-up” refers to any message, flag or signal that triggers the “active state” of operation of the user equipment. In the context of mobile devices and other portable equipment, wake-up execution can be triggered by way of known signal and power modulation techniques. Regardless of the chosen method of invoking the active state of operation of a given device, it will be seen that the effective coordination of wake-ups between pluralities of user equipment desiring to engage in a mutual communication session can be performed in a manner that positively conserves overall battery usage of said equipment.

As shown, the system 100 comprises user equipment (UE) 101 a and 101 b having connectivity to a communication server 111 via a communication network 105. By way of example, the communication network 105 of system 100 includes one or more networks such as a data network (not shown), a wireless network (not shown), a telephony network (not shown), or any combination thereof. It is contemplated that the data network may be any local area network (LAN), metropolitan area network (MAN), wide area network (WAN), a public data network (e.g., the Internet), or any other suitable packet-switched network, such as a commercially owned, proprietary packet-switched network, e.g., a proprietary cable or fiber-optic network. In addition, the wireless network may be, for example, a cellular network and may employ various technologies including enhanced data rates for global evolution (EDGE), general packet radio service (GPRS), global system for mobile communications (GSM), Internet protocol multimedia subsystem (IMS), universal mobile telecommunications system (UMTS), etc., as well as any other suitable wireless medium, e.g., worldwide interoperability for microwave access (WiMAX), Long Term Evolution (LTE) networks, code division multiple access (CDMA), wideband code division multiple access (WCDMA), wireless fidelity (WiFi), satellite, mobile ad-hoc network (MANET), and the like.

The UE 101 is any type of mobile terminal, fixed terminal, or portable terminal including a mobile handset, station, unit, device, multimedia computer, multimedia tablet, Internet node, communicator, desktop computer, laptop computer, Personal Digital Assistants (PDAs), Smartphone or any combination thereof. It is also contemplated that the UE 101 can support any type of interface to the user (such as “wearable” circuitry, etc.). Moreover, the UE 101 may execute one or more software applications or utilities, including but not limited to those for enabling or facilitating access to the communication network 105 and communication server 111, internet browsing, social networking, e-mail communication, file sharing and data transfer, word processing, data entry, spreadsheet processing, mathematical computation, etc. These applications and utilities may reside directly upon the UE or be accessed as web service applications or the like. The various applications may also be interoperable, so as to enable the execution of various features of the aforementioned application and utilities to be simultaneously executed to enable specific user tasks.

In addition to the above, UE 101 a and 101 b can also execute an update module 107 a and 107 b respectively. The update module 107 is an executable that allows wake-up times to be specified and/or regulated for the user equipment 101. By regulated, it is meant that the user equipment is enabled or disabled in accord with a specified wake-up time—i.e., a mobile device is automatically awakened from an “idle” to an “active” operational state at the time/date specified. Wake-up times are specified by the user, wherein the user manually schedules the wake-up time for the UE 101 (e.g., via the UE user interface). Depending on UE configuration, preferences or system requirements, the update module 107 can be implemented as a standalone executable or integrated with an existing scheduling application associated with the user's device. Scheduling applications may include, but are not limited to, a calendar, task or to do application (e.g., Outlook), a note capturing application, a CRM utility, a project scheduling/management software, event planning software, etc. Indeed, any software that enables a user to specify a particular date, time and/or duration for the occurrence of a particular event is suitable for usage as, or in conjunction with, an update module 107. Furthermore, any software with alarm or reminder functionality is suitable for use in connection with the examples set forth herein. The scheduled event, for example, would be a wake-up time and/or activity for the UE 101 to execute time triggered power-up logic for activating its power control unit.

Alternatively, the scheduled wake-up for the UE 101 is provided by a scheduler module 113 operable in connection with the communication server 111. The communication server 111 is maintained by a communications service provider (e.g., a wireless/cellular phone company) for supporting data exchange between pluralities of UEs. In addition to performing standard server tasks such as load balancing, resource prioritization, client/server request handling, network performance monitoring/management, etc., the server 111 also maintains data regarding the various parties that engage in data exchange, be they internal, external, direct or indirect users of the communication network 105. Data is maintained by the server 111 via one or more databases 115, and can include but is not limited to data regarding the user, profile data regarding the UE 101, preferences and settings data, configuration data and other semantic data necessary for enabling the user or a given UE 101 to place calls or exchange data (e.g., text, e-mail) with others over the communication network 105. Such data is maintained in a storage device 109 accessible to each respective UE 101, enabling it to be readily transferred over the network to facilitate communication with the server 111 (e.g., transfer of a UE identifier, user identifier or service request identifier for enabling fulfillment of an exchange or service execution)

Operable in connection with the server as well, is a scheduler module 113 that manages the various wake-up times for the plurality of UEs desiring to engage in communication with one another over the communication network 105. In particular, the scheduler module 113 receives wake-up activity data associated with a desired communication session from the various update modules 107 associated with a respective UE 101. Alternatively, the scheduler module 113 sends suggested wake-up activities to respective UEs in association with a desired communication session between pluralities of UEs. The data maintained by the scheduler module 113 includes, but is not limited to, (1) the specific wake-up activity schedule data, (2) UE or user contextual data that may be associated with a given wake-up activity and (3) communication logs between respective UEs 101 a and 101 b. Each of these data types enable the efficient scheduling of wake-up times relative to a communication session while accounting for varying user needs, preferences, environmental conditions, network availability and usage criteria and other factors that affect the user experience.

With respect to the wake-up activity data, for example, this may include the specific time/date of a wake-up, a wakeup priority useful for enabling the server to prioritize wakeup requests received from pluralities of UE, scheduled recurrence of wake-up for a given UE, an assigned wake-up title or code for distinguishing between different wake-up activities for the same UE over a given time period, etc. The wake-up activity data is always associated with a specific request for a desired exchange between UEs over the communication network 105. In general, the request by the server 111 to enable a communication session between two or more devices is accompanied by the wake-up activity data. So, for example, when a first device such as UE 101 a wants to engage a second device, such as UE 101 b, a specified wake-up time for the first device may accompany the request sent to the server 111. The scheduler module 113 can then coordinate wake-up times between the two devices accordingly based on the request. As used throughout, a wake-up activity is always associated with, or predicated upon, a request for a communication session between pluralities of UEs, whether said request is sent prior to or along with the corresponding wake-up activity data.

With respect to the contextual information, this can include any data pertaining to the user or UE 101 that impacts or relates to the operational state or status of the user equipment, including but not limited to UE 101 battery level, recharge frequency, equipment location, time, current and/or anticipated weather patterns, anticipated network traffic to be used during the communication session, current network traffic load, or any combination thereof. Other data useful for providing contextual information can include any metadata associated with a communication session request—i.e., user and semantic info 109 as passed to the server 111. As will be discussed in later sections of the description, this contextual data may be utilized by the scheduler module 113 to coordinate communications between pluralities of UEs in a manner that maximizes energy efficiency for all devices involved.

In addition to the above, the scheduler module 113 maintains communication log data. The communication log maintains a queue of pending communication requests to be performed between participating UEs. The log also maintains a record of prior performed communication sessions between UEs whose wake-ups have been coordinated in a complimentary manner. So, for example, if UE 101 has a scheduled exchange with UE 101 b, the scheduler module 113 of server 111 maintains a record of the time and date of the pending communication, initialized for example as a wake-up activity. Furthermore, the scheduler module 113 can maintain pertinent records 115 regarding the performed communication session between these devices. This data can then be analyzed and used to develop models that describe the communication preferences or tendencies between UEs for further optimizing the scheduling of wake-up activities of the participating devices. Again, more regarding such advantages and features will be discussed in later sections of the description. For now, the flowchart of FIG. 2 is presented, depicting a high-level process for synchronizing the wake-ups of switched off user equipment, according to one embodiment.

As a starting step 201, the scheduling module 113 of server 111 acts on a request to establish a communication session between a first device and a second device. In this example, the request is initialized by one or both of the devices via a respective update module 107, the request being maintained as a scheduled wake-up activity by the scheduler 113. As a next step 203, the scheduler module 113 determines whether the first device, second device or both are in an inactive state. The operational state of a given device may be ascertained by way of the contextual information provided by a respective update module 107. As a next step 205, the scheduler module 113 determines a next wake-up time to effect establishment of the communication session. Finally, as specified in step 207, the scheduler module causes transmission of the next wake-up time to the first device and the second device based on the determination step of 205.

Turning now to FIG. 3, a flowchart of a process for a first device to establish a communication session with a second device is depicted, according to one embodiment. In particular, the process presents the means by which a first device desiring engagement with a second device enables coordination of the request in a manner that optimizes battery usage and power consumption of the respective devices. As presented in the following figures, the first and second devices are user equipment (UE), implemented in the manner described with respect to FIG. 1.

As a first step 301, upon generating a request to establish a communication session with the second device, the first device formulates a wake-up update in connection with said request. The wake-up update includes at least a specified wake-up time of the first device. In addition to specifying the wake-up time, the user of the first device can also select one or more trigger conditions/criteria under which the wake-up time is to be executed, corresponding to steps 303-305. The user can be prompted to select from a list of trigger conditions (e.g., incoming text message, battery level, time setting) and can specify criteria can for its execution (e.g., periodicity of checking to see if the trigger condition has been met).

In steps 303-307, the user of the first device can also reschedule any pending tasks (processes or data transfers) to be performed until the specified wake-up time. As such, while the device user interface is not accessible during the inactive state, the pending tasks can be signed to a temporary buffer and executed upon wake-up. Depending on the device characteristics and/or user preferences, the tasks can be called for execution by order of priority, based on network conditions, etc. As a security consideration, the rescheduled tasks will only execute if they were signed by the same user whose SIM was plugged in at the time of rescheduling.

In steps 311-313, the user of the first device can further associate a proxy device through which the communication session with the second device can be performed. Specifically, the user can specify as part of the wake-up update to be sent to the server, several of its functions to assign to the proxy device. Resultantly, the server will attempt to reach the user via the proxy device. When a proxy is assigned, the server 111 forwards the communication session service connection to the designated proxy device (e.g. a scheduled call). Some considerations regarding proxy assignment, with respect to the one embodiment, are presented below:

-   -   Proxy assignment is especially useful when the proxy is a         multi-user device—i.e., products that can be used by multiple         individuals who authenticate themselves separately to a common         device yet have their own private settings and storage within         the device.     -   The server may forward a duplicate of the service connection to         the proxy device (e.g. a copy of an SMS).     -   The server may send metadata associated with the establishment         of a service connection to the proxy device (e.g. indication         that someone's status has changed in a social networking         service, but omitting the identity of the person).     -   The server may further minimize the total amount of proxy         devices employed by recommending the nearest already active         proxy device used by other devices within the same network         proximity (e.g., commonly grouped devices). The server 111 may         also balance the load over time by cycling the proxy         responsibility amongst devices in a group that have previously         used each other as proxies.     -   When the selected proxy device includes a low energy consumption         local connectivity mechanism, the first device can deactivate         all other functions except its local radio. As such, upon         receipt of a connection request at the prescribed wake-up time,         the assigned proxy sends a wake-up request over the local radio,         and the first device would wake up and receive the connection.     -   As another means of conserving energy with respect to the         aforementioned, the proxy device could execute the alarm         function on behalf of the first device that first device engages         in boot up, therefore reducing latency of executions during the         communication session with the second device. The proxy device         could even start the connection on behalf of the first device,         as it boots up, and then hand over the session when the first         device has finally booted. All of these approaches reduce         redundancy of execution, which is helpful for the health of the         network and the battery life of the user device.

Having formulated the wake-up update, which includes a wake-up time, the wake-up update is sent to the communication server 111 by a respective update module 109. In the case where the user specified one or more trigger conditions/criteria, task rescheduling or proxy assignment, this information is provided to the server in connection with the wake-up time as metadata.

With respect to FIG. 4, a flowchart of a process for a server to schedule a communication session between a first and second device is depicted, according to one embodiment. When the scheduler module 113 operating upon the server 111 receives the wake-up update along with any associated metadata from the first device, corresponding to step 401, it performs a check to determine if the wake-up time indicated in the update has already been assigned for the first device. This corresponds to step 403. When there are no pending connection requests for the user, the scheduler module 111 records the requested wake-up time to the communication log as pending schedule activity data. In addition, it records the associated metadata, corresponding to step 307. In the case, however, when the specified wake-up time has already been assigned for the associated device, the scheduler module 113 must determine a next wake-up time to effect establishment of the communication session. This process can be performed in a number of ways, some of which are presented below:

-   -   If there are pending connection requests for the user, the         server can determine based on the scheduled activity data the         time the device should wake up.     -   Given that the scheduler module 113 of the server 111 maintains         a log of connection requests for pluralities of devices and         services, the wake-up determination can be chosen that minimizes         the number of wake-ups of all the participating devices.     -   The scheduler module 113 of the server 111 can take into account         the energy levels and recharging availability of respective         devices, indicated as contextual data, to minimize the wake-ups         for devices with the lowest battery levels and/or devices that         are recharged most infrequently     -   The scheduler module 113 of the server 111 can also account for         typical session durations and the average energy consumption of         those sessions. For example, if user B typically engages with         user A for 10 minutes on average, and user A has a device with a         low battery that will not last to the end of such a session, the         wake-up for this connection can be scheduled to a time when user         A is expected to have recharged. This may be, for example, in         the morning (if user typically recharges from wall socket over         night) or in the evening (if user typically recharges from solar         cells or by sending the battery to be charged elsewhere during         the day).     -   The scheduler module 113 of the server 111 can take into account         the historical behavior of devices whose users are most likely         to attempt to contact each other, or who are likely to follow         each others' actions in social network services. The scheduler         module 113 can then align the wake-up times of such users.     -   The scheduler module 113 of the server 111 can also choose         optimal wake-up times for users in order to balance the load in         the cellular network. In this case, the server could distribute         the wake-up times of the users typically residing within the         same network proximity (e.g., commonly grouped devices) evenly         among an average wake-up interval—i.e., 60 minutes. So, for this         example, 1.6% of the devices would wake up at <hour>:01, another         1.6% would wake up at <hour>:02 etc.     -   The wake-up times can also be chosen to utilize availability of         power in the devices and in the network. So, for example, if the         devices and/or base stations are solar powered, wake-ups would         be concentrated to the daylight hours.     -   The wake-ups can be further chosen to adapt dynamically to the         local weather patterns, taking into account information about         the power sources used by the devices and network in those         areas. So, for example, if it is predicted to be cloudy in one         area and some devices in that area are solar-powered, such         devices would be instructed to schedule wake-ups outside of the         cloudy time. Or, if the base stations in the area are         wind-powered and it is predicted to be windy in the next five         hours, wake-ups would be scheduled to utilize that.     -   The server can also take into account the statistical behavior         of individual users when determining wake-up times that would         balance network load. If one user on average keeps their device         active for 6 minutes and generates on average 10 kbps of data         traffic, while another user has a rate of 2 kbps, then the         server could schedule only the first device to wake up at time         T=0 minutes, and five typical user devices to wake up at time         T=6 minutes, and the next five typical devices to wake up at T=9         minutes, etc.

In general, the determination of a next wake-up time for the communication session is based on available data regarding the user, participating devices, the communication network, server execution and any contextual data associated therewith. The approaches described above are by way of example only and do not limit the scope of the embodiments presented herein. Indeed, various other approaches may be exercised.

As a next step 409 of FIG. 4, the scheduler module 113 performs a further check to determine if a proxy device was assigned in association with the request to establish a communication session. In the case where a proxy was specified in association with the wake-up update, and a wake-up time has been determined/recorded, the scheduler module 113 sends a notice to the proxy indicating that the specified wake-up time was accepted. This corresponds to step 411. If, however, no proxy device was assigned, the scheduler module 113 sends a notice to the first device indicating that the wake-up time has been accepted, corresponding to step 413. A message is also sent to the second device indicating the wake-up time for the first device, corresponding to step 415.

FIGS. 5 a and 5 b are flowcharts of the process for enabling an inactive mode of a first and second device to be established based on a subsequently scheduled wake-up time, according to one embodiment. In particular, FIG. 5 a depicts the process engaged by the first device with respect to received feedback from the server 111 in response to a communication request. As a first step 501, the update module 107 operable on the first device performs a check to determine if the wake-up time was accepted. When this is so, the first device is placed in an inactive state, wherein all power to the device is shut down until the scheduled wake-up time (i.e., in accord with a trigger condition). When it is determined that the originally proposed wake-up time was not accepted by the server 111, the first device can present the various recommendations to the user via its user interface, as depicted in steps 501 and 503. The user of the first device can then select at least one of the recommended wake-up times offered, whereby the user will be prompted to indicate if they want to accept the recommendation, as shown in steps 505 and 501 respectively. As before, once the wake-up time is established, the first device will be entered into an inactive state.

FIG. 5 b depicts the process engaged by the first device with respect to received feedback from the server 111 in response to a communication session request. In step 509, when the wake-up time in association with a request for a communication session between the first and second device is accepted by the second device, the server is notified of this acceptance. This corresponds to step 511. Next, in step 513 the second device can be optionally placed into inactive mode as was the first device, again accounting for any specified triggers. In the instance where the wake-up time associated with the communication request not is accepted by the second device, step 515, the server is notified of the non-acceptance.

The embodiments described herein also contemplate various additional considerations for optimizing the overall communication experience. For example, if a given device wakes-up according to a time when the first attempted connection is expected to take place, the device will need to schedule a next wake-up to coincide with a second connection attempt. As another consideration, if the device wakes up at the midpoint of the different scheduled connection requests, the other devices need to wake up again.

As yet another consideration, if a given device intended for a communication session runs out of battery power, it will also send an update to the server. In this way, the server can freeze any pending connection requests and adjust the wake-ups of peer devices correspondingly. Alternatively, if user B attempts to call user A whose device is switched off, there could be an automatic (and free for calling user B) voice message indicating when user A can be reached. Such approaches provide ease and convenience for users in validating the availability or lack therefore, of communication opportunities.

As yet another consideration, the server can schedule multiple pending connection requests to a user. For example, if user B typically has 5 minute calls with user A, and user C also wants to call user A, then wake-up for user C would be 5 minutes later than wake-up for users A and B. If, however, user C is of higher priority than user B (e.g., as specified by the user or based on server interpretation of historical call patterns), their places in the connection queue would be interchanged. Also, if one user has smaller variance in the call durations, then that user could be scheduled before a user whose call durations vary a lot. Thus, the second user's device can wake up and not risk waiting for a long time before the first user has ended the call.

Still further, the server can provide the wake-up time of user A to another user B as a one or more fields within the data structure comprising contact information for respective users, such as to enable optimized scheduling and data sharing. With this in mind, when a user B wants to make a phone call to user A, the phonebook application resident upon user B's device can indicate the next scheduled wake-up time for user A's device (e.g., time of wakeup and duration from now) to the time of wake-up). Additionally, in the instance user A has decided to forward their connection attempts to another user C, the phonebook application can indicate that calls are forwarded to user C, or that SMS can be sent to user C's device. Indeed, any of the contextual information, network diagnostic data and other data that may be useful for the user can be presented via the contact manager, as notes, directly via the update module or any other application operable upon a given device.

Still further, an additional approach to establishing a communication session in a manner that optimizes energy consumption/battery power with respect to a plurality of devices is now discussed. In certain instances, the server could automatically start a connection attempt on behalf of the users A and B (by sending notifications to both devices) at the time of scheduled wake-up that has been accepted by both users (e.g., steps 507 and 511). As such, the connection process for establishment of the communication session is automated. In this example, the server could confirm from a Home Location Register and/or Visiting Location Register—databases where user activity and profile information is stored—that both devices are active, prior to starting the connection. Again, automation of activities minimizes the overall executions that would be performed separately—i.e., those that require the expenditure of network bandwidth and battery power.

Overall, the concepts described herein with respect to the foregoing embodiments enable many distinct advantages. Moreover, these advantages are realized from multiple perspectives, including that of the server, the communication network, the user, the user equipment involved with the network and the environment. For starters, the exemplary procedures outlined above enables two or more devices to spend most of their time switched off (inactive state) and to activate simultaneously with minimal service degradation to the users. Consequently, this feature makes it convenient for users of switched-off devices to be reachable with limited modalities, even over proxy devices. As another advantage, the embodiments herein enable automatic informing of interested communicants of which devices are switched off, and a best time to contact them corresponding to a scheduled wake-up time. This informing process is done directly via a user's device, with functionality that may be readily integrated with existing applications already existent upon the user's device.

Still further, the techniques presented herein enable a server to more effectively balance network loads dynamically in response to network usage and event to external events (e.g. weather) or other contextual data. Just as importantly, however, exemplary concepts herein facilitate new services that minimize the total energy consumption over a large number of peer devices, and hence the average consumption of an individual device users. This is achieved all while taking into account the momentary capabilities and historical behaviors of individual devices and their users and services.

FIG. 6 illustrates a computer system 600 upon which an embodiment of the invention may be implemented. Although computer system 600 is depicted with respect to a particular device or equipment, it is contemplated that other devices or equipment (e.g., network elements, servers, etc.) within FIG. 6 can deploy the illustrated hardware and components of system 600. Computer system 600 is programmed (e.g., via computer program code or instructions) to provide a co-creation platform as described herein and includes a communication mechanism such as a bus 610 for passing information between other internal and external components of the computer system 600. Information (also called data) is represented as a physical expression of a measurable phenomenon, typically electric voltages, but including, in other embodiments, such phenomena as magnetic, electromagnetic, pressure, chemical, biological, molecular, atomic, sub-atomic and quantum interactions. For example, north and south magnetic fields, or a zero and non-zero electric voltage, represent two states (0, 1) of a binary digit (bit). Other phenomena can represent digits of a higher base. A superposition of multiple simultaneous quantum states before measurement represents a quantum bit (qubit). A sequence of one or more digits constitutes digital data that is used to represent a number or code for a character. In some embodiments, information called analog data is represented by a near continuum of measurable values within a particular range. Computer system 600 or a portion thereof, constitutes a means for performing one or more steps of providing a co-creation platform.

A bus 610 includes one or more parallel conductors of information so that information is transferred quickly among devices coupled to the bus 610. One or more processors 602 for processing information are coupled with the bus 610.

A processor 602 performs a set of operations on information as specified by computer program code related to provide a co-creation platform. The computer program code is a set of instructions or statements providing instructions for the operation of the processor and/or the computer system to perform specified functions. The code, for example, may be written in a computer programming language that is compiled into a native instruction set of the processor. The code may also be written directly using the native instruction set (e.g., machine language). The set of operations include bringing information in from the bus 610 and placing information on the bus 610. The set of operations also typically include comparing two or more units of information, shifting positions of units of information, and combining two or more units of information, such as by addition or multiplication or logical operations like OR, exclusive OR (XOR), and AND. Each operation of the set of operations that can be performed by the processor is represented to the processor by information called instructions, such as an operation code of one or more digits. A sequence of operations to be executed by the processor 602, such as a sequence of operation codes, constitute processor instructions, also called computer system instructions or, simply, computer instructions. Processors may be implemented as mechanical, electrical, magnetic, optical, chemical or quantum components, among others, alone or in combination.

Computer system 600 also includes a memory 604 coupled to bus 610. The memory 604, such as a random access memory (RAM) or other dynamic storage device, stores information including processor instructions for providing a co-creation platform. Dynamic memory allows information stored therein to be changed by the computer system 600. RAM allows a unit of information stored at a location called a memory address to be stored and retrieved independently of information at neighboring addresses. The memory 604 is also used by the processor 602 to store temporary values during execution of processor instructions. The computer system 600 also includes a read only memory (ROM) 606 or other static storage device coupled to the bus 610 for storing static information, including instructions, that is not changed by the computer system 600. Some memory is composed of volatile storage that loses the information stored thereon when power is lost. Also coupled to bus 610 is a non-volatile (persistent) storage device 608, such as a magnetic disk, optical disk or flash card, for storing information, including instructions, that persists even when the computer system 600 is turned off or otherwise loses power.

Information, including instructions for providing a co-creation platform, is provided to the bus 610 for use by the processor from an external input device 1212, such as a keyboard containing alphanumeric keys operated by a human user, or a sensor. A sensor detects conditions in its vicinity and transforms those detections into physical expression compatible with the measurable phenomenon used to represent information in computer system 600. Other external devices coupled to bus 610, used primarily for interacting with humans, include a display device 614, such as a cathode ray tube (CRT) or a liquid crystal display (LCD), or plasma screen or printer for presenting text or images, and a pointing device 616, such as a mouse or a trackball or cursor direction keys, or motion sensor, for controlling a position of a small cursor image presented on the display 614 and issuing commands associated with graphical elements presented on the display 614. In some embodiments, for example, in embodiments in which the computer system 600 performs all functions automatically without human input, one or more of external input device 1212, display device 614 and pointing device 616 is omitted.

In the illustrated embodiment, special purpose hardware, such as an application specific integrated circuit (ASIC) 620, is coupled to bus 610. The special purpose hardware is configured to perform operations not performed by processor 602 quickly enough for special purposes. Examples of application specific ICs include graphics accelerator cards for generating images for display 614, cryptographic boards for encrypting and decrypting messages sent over a network, speech recognition, and interfaces to special external devices, such as robotic arms and medical scanning equipment that repeatedly perform some complex sequence of operations that are more efficiently implemented in hardware.

Computer system 600 also includes one or more instances of a communications interface 670 coupled to bus 610. Communication interface 670 provides a one-way or two-way communication coupling to a variety of external devices that operate with their own processors, such as printers, scanners and external disks. In general the coupling is with a network link 678 that is connected to a local network 680 to which a variety of external devices with their own processors are connected. For example, communication interface 670 may be a parallel port or a serial port or a universal serial bus (USB) port on a personal computer. In some embodiments, communications interface 670 is an integrated services digital network (ISDN) card or a digital subscriber line (DSL) card or a telephone modem that provides an information communication connection to a corresponding type of telephone line. In some embodiments, a communication interface 670 is a cable modem that converts signals on bus 610 into signals for a communication connection over a coaxial cable or into optical signals for a communication connection over a fiber optic cable. As another example, communications interface 670 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN, such as Ethernet. Wireless links may also be implemented. For wireless links, the communications interface 670 sends or receives or both sends and receives electrical, acoustic or electromagnetic signals, including infrared and optical signals that carry information streams, such as digital data. For example, in wireless handheld devices, such as mobile telephones like cell phones, the communications interface 670 includes a radio band electromagnetic transmitter and receiver called a radio transceiver. In certain embodiments, the communications interface 670 enables connection between the UE 201 a and the communication network 205 for providing a co-creation platform.

The term computer-readable medium is used herein to refer to any medium that participates in providing information to processor 602, including instructions for execution. Such a medium may take many forms, including, but not limited to, non-volatile media, volatile media and transmission media. Non-volatile media include, for example, optical or magnetic disks, such as storage device 608. Volatile media include, for example, dynamic memory 604. Transmission media include, for example, coaxial cables, copper wire, fiber optic cables, and carrier waves that travel through space without wires or cables, such as acoustic waves and electromagnetic waves, including radio, optical and infrared waves. Signals include man-made transient variations in amplitude, frequency, phase, polarization or other physical properties transmitted through the transmission media. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, CDRW, DVD, any other optical medium, punch cards, paper tape, optical mark sheets, any other physical medium with patterns of holes or other optically recognizable indicia, a RAM, a PROM, an EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave, or any other medium from which a computer can read. The term computer-readable storage medium is used herein to refer to any computer-readable medium except transmission media.

Logic encoded in one or more tangible media includes one or both of processor instructions on a computer-readable storage media and special purpose hardware, such as ASIC 620.

Network link 678 typically provides information communication using transmission media through one or more networks to other devices that use or process the information. For example, network link 678 may provide a connection through local network 680 to a host computer 682 or to equipment 684 operated by an Internet Service Provider (ISP). ISP equipment 684 in turn provides data communication services through the public, world-wide packet-switching communication network of networks now commonly referred to as the Internet 690.

A computer called a server host 692 connected to the Internet hosts a process that provides a service in response to information received over the Internet. For example, server host 692 hosts a process that provides information representing video data for presentation at display 614. It is contemplated that the components of system 600 can be deployed in various configurations within other computer systems, e.g., host 682 and server 692.

At least some embodiments of the invention are related to the use of computer system 600 for implementing some or all of the techniques described herein. According to one embodiment of the invention, those techniques are performed by computer system 600 in response to processor 602 executing one or more sequences of one or more processor instructions contained in memory 604. Such instructions, also called computer instructions, software and program code, may be read into memory 604 from another computer-readable medium such as storage device 608 or network link 678. Execution of the sequences of instructions contained in memory 604 causes processor 602 to perform one or more of the method steps described herein. In alternative embodiments, hardware, such as ASIC 620, may be used in place of or in combination with software to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware and software, unless otherwise explicitly stated herein.

The signals transmitted over network link 678 and other networks through communications interface 670, carry information to and from computer system 600. Computer system 600 can send and receive information, including program code, through the networks 680, 690 among others, through network link 678 and communications interface 670. In an example using the Internet 690, a server host 692 transmits program code for a particular application, requested by a message sent from computer 600, through Internet 690, ISP equipment 684, local network 680 and communications interface 670. The received code may be executed by processor 602 as it is received, or may be stored in memory 604 or in storage device 608 or other non-volatile storage for later execution, or both. In this manner, computer system 600 may obtain application program code in the form of signals on a carrier wave.

Various forms of computer readable media may be involved in carrying one or more sequence of instructions or data or both to processor 602 for execution. For example, instructions and data may initially be carried on a magnetic disk of a remote computer such as host 682. The remote computer loads the instructions and data into its dynamic memory and sends the instructions and data over a telephone line using a modem. A modem local to the computer system 600 receives the instructions and data on a telephone line and uses an infra-red transmitter to convert the instructions and data to a signal on an infra-red carrier wave serving as the network link 678. An infrared detector serving as communications interface 670 receives the instructions and data carried in the infrared signal and places information representing the instructions and data onto bus 610. Bus 610 carries the information to memory 604 from which processor 602 retrieves and executes the instructions using some of the data sent with the instructions. The instructions and data received in memory 604 may optionally be stored on storage device 608, either before or after execution by the processor 602.

FIG. 7 illustrates a chip set 700 upon which an embodiment of the invention may be implemented. Chip set 700 is programmed to provide a co-creation platform as described herein and includes, for instance, the processor and memory components described with respect to FIG. 12 incorporated in one or more physical packages (e.g., chips). By way of example, a physical package includes an arrangement of one or more materials, components, and/or wires on a structural assembly (e.g., a baseboard) to provide one or more characteristics such as physical strength, conservation of size, and/or limitation of electrical interaction. It is contemplated that in certain embodiments the chip set can be implemented in a single chip. Chip set 700, or a portion thereof, constitutes a means for performing one or more steps of providing a co-creation platform.

In one embodiment, the chip set 700 includes a communication mechanism such as a bus 701 for passing information among the components of the chip set 700. A processor 703 has connectivity to the bus 701 to execute instructions and process information stored in, for example, a memory 705. The processor 703 may include one or more processing cores with each core configured to perform independently. A multi-core processor enables multiprocessing within a single physical package. Examples of a multi-core processor include two, four, eight, or greater numbers of processing cores. Alternatively or in addition, the processor 703 may include one or more microprocessors configured in tandem via the bus 701 to enable independent execution of instructions, pipelining, and multithreading. The processor 703 may also be accompanied with one or more specialized components to perform certain processing functions and tasks such as one or more digital signal processors (DSP) 707, or one or more application-specific integrated circuits (ASIC) 709. A DSP 707 typically is configured to process real-world signals (e.g., sound) in real time independently of the processor 703. Similarly, an ASIC 709 can be configured to performed specialized functions not easily performed by a general purposed processor. Other specialized components to aid in performing the inventive functions described herein include one or more field programmable gate arrays (FPGA) (not shown), one or more controllers (not shown), or one or more other special-purpose computer chips.

The processor 703 and accompanying components have connectivity to the memory 705 via the bus 701. The memory 705 includes both dynamic memory (e.g., RAM, magnetic disk, writable optical disk, etc.) and static memory (e.g., ROM, CD-ROM, etc.) for storing executable instructions that when executed perform the inventive steps described herein to provide a co-creation platform. The memory 705 also stores the data associated with or generated by the execution of the inventive steps.

FIG. 8 is a diagram of exemplary components of a mobile terminal (e.g., handset) for communications, which is capable of operating in the system of FIG. 1, according to one embodiment. In some embodiments, mobile terminal 800, or a portion thereof, constitutes a means for performing one or more steps of providing a co-creation platform. Generally, a radio receiver is often defined in terms of front-end and back-end characteristics. The front-end of the receiver encompasses all of the Radio Frequency (RF) circuitry whereas the back-end encompasses all of the base-band processing circuitry. As used in this application, the term “circuitry” refers to both: (1) hardware-only implementations (such as implementations in only analog and/or digital circuitry), and (2) to combinations of circuitry and software (and/or firmware) (such as, if applicable to the particular context, to a combination of processor(s), including digital signal processor(s), software, and memory(ies) that work together to cause an apparatus, such as a mobile phone or server, to perform various functions). This definition of “circuitry” applies to all uses of this term in this application, including in any claims. As a further example, as used in this application and if applicable to the particular context, the term “circuitry” would also cover an implementation of merely a processor (or multiple processors) and its (or their) accompanying software/or firmware. The term “circuitry” would also cover if applicable to the particular context, for example, a baseband integrated circuit or applications processor integrated circuit in a mobile phone or a similar integrated circuit in a cellular network device or other network devices.

Pertinent internal components of the telephone include a Main Control Unit (MCU) 803, a Digital Signal Processor (DSP) 805, and a receiver/transmitter unit including a microphone gain control unit and a speaker gain control unit. A main display unit 807 provides a display to the user in support of various applications and mobile terminal functions that perform or support the steps of providing a co-creation platform. The display 807 includes display circuitry configured to display at least a portion of a user interface of the mobile terminal (e.g., mobile telephone). Additionally, the display 807 and display circuitry are configured to facilitate user control of at least some functions of the mobile terminal. An audio function circuitry 809 includes a microphone 811 and microphone amplifier that amplifies the speech signal output from the microphone 811. The amplified speech signal output from the microphone 811 is fed to a coder/decoder (CODEC) 813.

A radio section 815 amplifies power and converts frequency in order to communicate with a base station, which is included in a mobile communication system, via antenna 817. The power amplifier (PA) 819 and the transmitter/modulation circuitry are operationally responsive to the MCU 803, with an output from the PA 819 coupled to the duplexer 821 or circulator or antenna switch, as known in the art. The PA 819 also couples to a battery interface and power control unit 820.

In use, a user of mobile terminal 801 speaks into the microphone 811 and his or her voice along with any detected background noise is converted into an analog voltage. The analog voltage is then converted into a digital signal through the Analog to Digital Converter (ADC) 823. The control unit 803 routes the digital signal into the DSP 805 for processing therein, such as speech encoding, channel encoding, encrypting, and interleaving. In one embodiment, the processed voice signals are encoded, by units not separately shown, using a cellular transmission protocol such as global evolution (EDGE), general packet radio service (GPRS), global system for mobile communications (GSM), Internet protocol multimedia subsystem (IMS), universal mobile telecommunications system (UMTS), etc., as well as any other suitable wireless medium, e.g., microwave access (WiMAX), Long Term Evolution (LTE) networks, code division multiple access (CDMA), wideband code division multiple access (WCDMA), wireless fidelity (WiFi), satellite, and the like.

The encoded signals are then routed to an equalizer 825 for compensation of any frequency-dependent impairments that occur during transmission though the air such as phase and amplitude distortion. After equalizing the bit stream, the modulator 827 combines the signal with a RF signal generated in the RF interface 829. The modulator 827 generates a sine wave by way of frequency or phase modulation. In order to prepare the signal for transmission, an up-converter 831 combines the sine wave output from the modulator 827 with another sine wave generated by a synthesizer 833 to achieve the desired frequency of transmission. The signal is then sent through a PA 819 to increase the signal to an appropriate power level. In practical systems, the PA 819 acts as a variable gain amplifier whose gain is controlled by the DSP 805 from information received from a network base station. The signal is then filtered within the duplexer 821 and optionally sent to an antenna coupler 835 to match impedances to provide maximum power transfer. Finally, the signal is transmitted via antenna 817 to a local base station. An automatic gain control (AGC) can be supplied to control the gain of the final stages of the receiver. The signals may be forwarded from there to a remote telephone which may be another cellular telephone, other mobile phone or a land-line connected to a Public Switched Telephone Network (PSTN), or other telephony networks.

Voice signals transmitted to the mobile terminal 801 are received via antenna 817 and immediately amplified by a low noise amplifier (LNA) 837. A down-converter 839 lowers the carrier frequency while the demodulator 841 strips away the RF leaving only a digital bit stream. The signal then goes through the equalizer 825 and is processed by the DSP 805. A Digital to Analog Converter (DAC) 843 converts the signal and the resulting output is transmitted to the user through the speaker 845, all under control of a Main Control Unit (MCU) 803—which can be implemented as a Central Processing Unit (CPU) (not shown).

The MCU 803 receives various signals including input signals from the keyboard 847. The keyboard 847 and/or the MCU 803 in combination with other user input components (e.g., the microphone 811) comprise a user interface circuitry for managing user input. The MCU 803 runs a user interface software to facilitate user control of at least some functions of the mobile terminal 801 to provide a co-creation platform. The MCU 803 also delivers a display command and a switch command to the display 807 and to the speech output switching controller, respectively. Further, the MCU 803 exchanges information with the DSP 805 and can access an optionally incorporated SIM card 849 and a memory 851. In addition, the MCU 803 executes various control functions required of the terminal. The DSP 805 may, depending upon the implementation, perform any of a variety of conventional digital processing functions on the voice signals. Additionally, DSP 805 determines the background noise level of the local environment from the signals detected by microphone 811 and sets the gain of microphone 811 to a level selected to compensate for the natural tendency of the user of the mobile terminal 801.

The CODEC 813 includes the ADC 823 and DAC 843. The memory 851 stores various data including call incoming tone data and is capable of storing other data including music data received via, e.g., the global Internet. The software module could reside in RAM memory, flash memory, registers, or any other form of writable storage medium known in the art. The memory device 851 may be, but not limited to, a single memory, CD, DVD, ROM, RAM, EEPROM, optical storage, or any other non-volatile storage medium capable of storing digital data.

An optionally incorporated SIM card 849 carries, for instance, important information, such as the cellular phone number, the carrier supplying service, subscription details, and security information. The SIM card 849 serves primarily to identify the mobile terminal 801 on a radio network. The card 849 also contains a memory for storing a personal telephone number registry, text messages, and user specific mobile terminal settings.

While the invention has been described in connection with a number of embodiments and implementations, the invention is not so limited but covers various obvious modifications and equivalent arrangements, which fall within the purview of the appended claims. Although features of the invention are expressed in certain combinations among the claims, it is contemplated that these features can be arranged in any combination and order. 

1. A method comprising: acting on a request to establish a communication session between a first device and a second device, wherein the first device, the second device, or both are associated with a respective activity schedule that specifies, at least in part, a wake-up time when the respective device will be in an active state; determining whether the first device, the second device, or both are in an inactive state; determining a next wake-up time to effect establishment of the communication session; and causing, at least in part, transmission of the next wake-up time to the first device and the second device.
 2. A method of claim 1, further comprising: receiving an update message from the first device or the second device, the update message indicating, at least in part, a request to update the activity schedule of the respective device; and wherein the transmission of the next wake-up time is triggered, at least in part, by receipt of the update message.
 3. A method of claim 1, further comprising: maintaining a log of the communication session and other prior communication sessions involving the first device, the second device, or both, wherein the log includes, at least in part, a time and a duration of the communications, wherein determining of the next wake-up time and a duration of the next wake-up time is based, at least in part, on the log.
 4. A method of claim 1, further comprising: determining contextual information associated with the communication session, the first device, the second device, or a combination thereof, wherein determining of the next wake-up time is based, at least in part, on the contextual information.
 5. A method of claim 4, wherein the contextual information includes battery level, recharge frequency, location, time, weather patterns, anticipated network traffic used during the communication session, current network traffic load, or combination thereof.
 6. A method of claim 1, further comprising: determining whether the first device, the second device, or both are associated with respective proxy devices; causing, at least in part, establishment of the communication session via the proxy device of the first device, the proxy device of the second device, or both based, at least in part, on the determination with respect to association with the proxy devices and the determination of whether the respective devices are in an inactive state.
 7. A method of claim 6, wherein the first device, the second device, or both are associated with multiple proxy devices, the method further comprising: selecting the respective proxy devices from among the multiple proxy devices based, at least in part, on proximity to the first device or the second device.
 8. A method of claim 6, wherein the respective proxy devices include a local connectivity mechanism, the method further comprising: causing, at least in part, the respective proxy devices to alert the first device, the second device, or both of the communication session via the local connectivity mechanism.
 9. An apparatus comprising: at least one processor; and at least one memory including computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus to perform at least the following, act on a request to establish a communication session between a first device and a second device, wherein the first device, the second device, or both are associated with a respective activity schedule that specifies, at least in part, a wake-up time when the respective device will be in an active state; determine whether the first device, the second device, or both are in an inactive state; determine a next wake-up time to effect establishment of the communication session; and cause, at least in part, transmission of the next wake-up time to the first device and the second device.
 10. An apparatus of claim 9, wherein the apparatus is further caused to: receive an update message from the first device or the second device, the update message indicating, at least in part, a request to update the activity schedule of the respective device; and wherein the transmission of the next wake-up time is triggered, at least in part, by receipt of the update message.
 11. An apparatus of claim 9, wherein the apparatus is further caused to: maintain a log of the communication session and other prior communication sessions involving the first device, the second device, or both, wherein the log includes, at least in part, a time and a duration of the communications, wherein determining of the next wake-up time and a duration of the next wake-up time is based, at least in part, on the log.
 12. An apparatus of claim 9, wherein the apparatus is further caused to: determining contextual information associated with the communication session, the first device, the second device, or a combination thereof, wherein determining of the next wake-up time is based, at least in part, on the contextual information.
 13. An apparatus of claim 12, wherein the contextual information includes battery level, recharge frequency, location, time, weather patterns, anticipated network traffic used during the communication session, current network traffic load, or combination thereof.
 14. An apparatus of claim 9, wherein the apparatus is further caused to: determine whether the first device, the second device, or both are associated with respective proxy devices; cause, at least in part, establishment of the communication session via the proxy device of the first device, the proxy device of the second device, or both based, at least in part, on the determination with respect to association with the proxy devices and the determination of whether the respective devices are in an inactive state.
 15. An apparatus of claim 14, wherein the first device, the second device, or both are associated with multiple proxy devices, and wherein the apparatus is further caused to: select the respective proxy devices from among the multiple proxy devices based, at least in part, on proximity to the first device or the second device.
 16. An apparatus of claim 14, wherein the respective proxy devices include a local connectivity mechanism, and wherein the apparatus is further caused to: cause, at least in part, the respective proxy devices to alert the first device, the second device, or both of the communication session via the local connectivity mechanism.
 17. A computer-readable storage medium carrying one or more sequences of one or more instructions which, when executed by one or more processors, cause an apparatus to at least perform the following: acting on a request to establish a communication session between a first device and a second device, wherein the first device, the second device, or both are associated with a respective activity schedule that specifies, at least in part, a wake-up time when the respective device will be in an active state; determining whether the first device, the second device, or both are in an inactive state; determining a next wake-up time to effect establishment of the communication session; and causing, at least in part, transmission of the next wake-up time to the first device and the second device.
 18. A computer-readable storage medium of claim 17, wherein the apparatus is caused to further perform: receiving an update message from the first device or the second device, the update message indicating, at least in part, a request to update the activity schedule of the respective device; and wherein the transmission of the next wake-up time is triggered, at least in part, by receipt of the update message.
 19. A computer-readable storage medium of claim 17, wherein the apparatus is caused to further perform: maintaining a log of the communication session and other prior communication sessions involving the first device, the second device, or both, wherein the log includes, at least in part, a time and a duration of the communications, wherein determining of the next wake-up time and a duration of the next wake-up time is based, at least in part, on the log.
 20. A computer-readable storage medium of claim 17, wherein the apparatus is caused to further perform: determining whether the first device, the second device, or both are associated with respective proxy devices; causing, at least in part, establishment of the communication session via the proxy device of the first device, the proxy device of the second device, or both based, at least in part, on the determination with respect to association with the proxy devices and the determination of whether the respective devices are in an inactive state. 21-53. (canceled) 